var express = require('express');
var router = express.Router();
var reportDao = require('../dao/report');
var AdminToken = require('../db/user_tokens');
var reportRoutes = module.exports;

/**
 * 举报信息列表
 * @param  token
 * @param  page
 * @param  size
 *         url/report/list
 */
reportRoutes.list = function(req, res) {
    var par = paramAll(req);
    par.size = !par.size ? 10 : parseInt(par.size);
    par.start = !par.page ? 0 : par.start = (parseInt(par.page) - 1) * parseInt(par.size);
    if(!par.token) return res.json(new ERR('token不为空！', 400));
    AdminToken.checkAdminLogin(par.token, null, function(err, errCode, adminInfo) {
        if(err) return  res.json(new ERR(err, errCode));
        reportDao.list(par, function(err, result) {
            if(err) return res.json(new ERR(err, 400));
            res.json(new PKG(result));
        })
    });
}
router.post('/list', reportRoutes.list);

/**
 * 用户举报
 * @param  openid
 * @param  avatar
 * @param  nick
 * @param  reason
 *         url/report/report
 */
reportRoutes.report = function(req, res) {
    var par = paramAll(req);
    if(!par.openid) return res.json(new ERR('openid不为空！', 400));
    if(!par.avatar) return res.json(new ERR('avatar不为空！', 400));
    if(!par.nick) return res.json(new ERR('nick不为空！', 400));
    if(!par.content) return res.json(new ERR('content不为空！', 400));
    reportDao.report(par, function(err, result) {
        if(err) return res.json(new ERR(err, 400));
        res.json(new PKG(result));
    })
}
router.post('/report', reportRoutes.report);

/**
 * 管理员处理反馈信息
 * @param  token
 * @param  id
 * @param  status
 *         url/report/updateStatus
 */
reportRoutes.updateStatus = function(req, res) {
    var par = paramAll(req);
    if(!par.id) return res.json(new ERR('id不为空！', 400));
    if(!par.status) return res.json(new ERR('status不为空！', 400));
    AdminToken.checkAdminLogin(par.token, null, function(err, errCode, adminInfo) {
        if(err) return  res.json(new ERR(err, errCode));
        reportDao.updateStatus(par, function(err, result) {
            if(err) return res.json(new ERR(err, 400));
            res.json(new PKG(result));
        })
    });
}
router.post('/updateStatus', reportRoutes.updateStatus);

module.exports = router;